[IA64] physical mode fix
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 1 Nov 2006 05:25:40 +0000 (22:25 -0700)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 1 Nov 2006 05:25:40 +0000 (22:25 -0700)
1. use WB attribute to emulate UC guest physical page.
2. corretly handle GUEST_PHY_EMUL

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
xen/arch/ia64/vmx/vmx_phy_mode.c

index 17614e816ceec894b296209f07bf8d7474002c88..f2ad493c0c211176a9ff0e5871990aede2f41c79 100644 (file)
@@ -113,10 +113,7 @@ physical_tlb_miss(VCPU *vcpu, u64 vadr, int type)
     ia64_rr rr;
     rr.rrval = ia64_get_rr(vadr);
     pte =  vadr& _PAGE_PPN_MASK;
-    if (vadr >> 63)
-        pte = pte | PHY_PAGE_UC;
-    else
-        pte = pte | PHY_PAGE_WB;
+    pte = pte | PHY_PAGE_WB;
     thash_vhpt_insert(vcpu, pte, (rr.ps << 2), vadr, type);
     return;
 }
@@ -347,10 +344,9 @@ prepare_if_physical_mode(VCPU *vcpu)
 void
 recover_if_physical_mode(VCPU *vcpu)
 {
-    if (is_physical_mode(vcpu)) {
-       vcpu->arch.mode_flags &= ~GUEST_PHY_EMUL;
+    if (is_physical_mode(vcpu))
         switch_to_physical_rid(vcpu);
-    }
+    vcpu->arch.mode_flags &= ~GUEST_PHY_EMUL;
     return;
 }